home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / ditroff / tmac.s < prev    next >
Encoding:
Text File  |  1991-11-19  |  14.1 KB  |  1,013 lines

  1. .ds // /sprite/lib/ditroff/
  2. .    \" IZ - initialize (before text begins)
  3. .de IZ
  4. .nr FM 1i
  5. .nr YY -\\n(FMu
  6. .nr XX 0 1
  7. .nr IP 0
  8. .nr PI 5n
  9. .nr QI 5n
  10. .nr FI 2n
  11. .nr I0 \\n(PIu
  12. .if n .nr PD 1v
  13. .if t .nr PD .3v
  14. .if n .nr DD 1v
  15. .if t .nr DD .5v
  16. .nr PS 10
  17. .nr VS 12
  18. .ps \\n(PS
  19. .vs \\n(VSp
  20. .nr ML 3v
  21. .nr IR 0
  22. .nr TB 0
  23. .nr SJ \\n(.j
  24. .nr PO \\n(.o
  25. .nr LL 6i
  26. .ll \\n(LLu
  27. .lt 6i
  28. .ev 1
  29. .nr FL 5.5i
  30. .ll \\n(FLu
  31. .ps 8
  32. .vs 10p
  33. .ev
  34. .ds CH - \\\\n(PN -
  35. .if n .ds CF \\*(DY
  36. .wh 0 NP
  37. .wh -\\n(FMu FO
  38. .ch FO 16i
  39. .wh -\\n(FMu FX
  40. .ch FO -\\n(FMu
  41. .wh -\\n(FMu/2u BT
  42. ..
  43. .    \" RT - reset (at new paragraph)
  44. .de RT
  45. .if !\\n(1T .BG
  46. .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
  47. .if \\n(TM .ls 2
  48. .ce 0
  49. .ul 0
  50. .if \\n(QP \{\
  51. .    ll +\\n(QIu
  52. .    in -\\n(QIu
  53. .    nr QP -1
  54. .\}
  55. .if \\n(NX<=1 .if !\\n(AJ .ll \\n(LLu
  56. .if !\\n(IF \{\
  57. .    ps \\n(PS
  58. .    if \\n(VS>=40 .vs \\n(VSu
  59. .    if \\n(VS<=39 .vs \\n(VSp
  60. .\}
  61. .if !\\n(IP .nr I0 \\n(PIu
  62. .if \\n(IP \{\
  63. .    in -\\n(I\\n(IRu
  64. .    nr IP -1
  65. .\}
  66. .ft 1
  67. .TA
  68. .fi
  69. ..
  70. .    \" TA - set default tabs
  71. .de TA
  72. .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n
  73. .if t .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n
  74. ..
  75. .    \" BG - begin (at first paragraph)
  76. .de BG
  77. .br
  78. .nr YE 1
  79. .di
  80. .ce 0
  81. .nr KI 0
  82. .hy 14
  83. .nr 1T 1
  84. .S\\n(ST
  85. .rm S0 S1 S2 SY TX AX WT RP
  86. .\"redefs
  87. .de TL
  88. .ft 3
  89. .ce 99
  90. .sp
  91. .LG
  92. \\..
  93. .de AU
  94. .ft 2
  95. .if n .ul 0
  96. .ce 99
  97. .sp
  98. .NL
  99. \\..
  100. .de AI
  101. .ft 1
  102. .if n .ul 0
  103. .ce 99
  104. .if n .sp
  105. .if t .sp .5
  106. .NL
  107. \\..
  108. .RA
  109. .rn FJ FS
  110. .rn FK FE
  111. .nf
  112. .ev 1
  113. .ps \\n(PS-2
  114. .vs \\n(.s+2p
  115. .ev
  116. .if !\\n(KG .nr FP 0
  117. .nr KG 0
  118. .if \\n(FP \{\
  119. .    FS
  120. .    FG
  121. .    FE
  122. .\}
  123. .br
  124. .if \\n(TV .if n .sp 2
  125. .if \\n(TV .if t .sp 1
  126. .fi
  127. .ll \\n(LLu
  128. ..
  129. .    \" RA - redefine abstract
  130. .de RA
  131. .de AB
  132. .br
  133. .if !\\n(1T .BG
  134. .ce
  135. .sp
  136. .if !\\n(.$ ABSTRACT
  137. .if \\n(.$ .if !\\$1no \\$1
  138. .if !\\n(.$ .sp
  139. .if \\n(.$ .if !\\$1no .sp
  140. .sp
  141. .nr AJ 1
  142. .in +\\n(.lu/12u
  143. .ll -\\n(.lu/12u
  144. .RT
  145. .if \\n(TM .ls 1
  146. \\..
  147. .de AE
  148. .nr AJ 0
  149. .br
  150. .in 0
  151. .ll \\n(LLu
  152. .if \\n(VS>=40 .vs \\n(VSu
  153. .if \\n(VS<=39 .vs \\n(VSp
  154. .if \\n(TM .ls 2
  155. \\..
  156. ..
  157. .    \" RP - released paper format
  158. .de RP
  159. .nr ST 2
  160. .if \\$1no .nr ST 1
  161. .pn 0
  162. .br
  163. ..
  164. .    \" TL - source file for cover sheet
  165. .de TL
  166. .rn TL @T
  167. .so \*(//s.cov
  168. .TL
  169. .rm @T
  170. ..
  171. .    \" PP - regular paragraph
  172. .de PP
  173. .RT
  174. .if \\n(1T .sp \\n(PDu
  175. .ne 1.1
  176. .ti +\\n(PIu
  177. ..
  178. .    \" LP - left paragraph
  179. .de LP
  180. .RT
  181. .if \\n(1T .sp \\n(PDu
  182. .ne 1.1
  183. .ti \\n(.iu
  184. ..
  185. .    \" IP - indented paragraph
  186. .de IP
  187. .RT
  188. .if \\n(1T .sp \\n(PDu
  189. .ne 1.1
  190. .if !\\n(IP .nr IP +1
  191. .if \\n(.$-1 .nr I\\n(IR \\$2n
  192. .in +\\n(I\\n(IRu
  193. .ta \\n(I\\n(IRu
  194. .if \\n(.$ \{\
  195. .ds HT \&\\$1
  196. .ti -\\n(I\\n(IRu
  197. \\*(HT\t\c
  198. .if \w'\\*(HT'u>(\\n(I\\n(IRu+1n) .br
  199. .\}
  200. ..
  201. .    \" XP - exdented paragraph
  202. .de XP
  203. .RT
  204. .if \\n(1T .sp \\n(PDu
  205. .ne 1.1
  206. .if !\\n(IP .nr IP +1
  207. .in +\\n(I\\n(IRu
  208. .ti -\\n(I\\n(IRu
  209. ..
  210. .    \" QP - quote paragraph
  211. .de QP
  212. .ti \\n(.iu
  213. .RT
  214. .if \\n(1T .sp \\n(PDu
  215. .ne 1.1
  216. .nr QP 1
  217. .in +\\n(QIu
  218. .ll -\\n(QIu
  219. .ti \\n(.iu
  220. .if \\n(TM .ls 1
  221. ..
  222. .    \" SH - section header
  223. .de SH
  224. .ti \\n(.iu
  225. .RT
  226. .if \\n(1T .sp
  227. .RT
  228. .ne 3.1
  229. .B
  230. ..
  231. .    \" NH - numbered header
  232. .de NH
  233. .SH
  234. .nr NS \\$1
  235. .if !\\n(.$ .nr NS 1
  236. .if !\\n(NS .nr NS 1
  237. .nr H\\n(NS +1
  238. .if !\\n(NS-4 .nr H5 0
  239. .if !\\n(NS-3 .nr H4 0
  240. .if !\\n(NS-2 .nr H3 0
  241. .if !\\n(NS-1 .nr H2 0
  242. .if !\\$1 .if \\n(.$ .nr H1 1
  243. .if \\$1S \{\
  244. .    nr NS \\n(.$-1
  245. .    nr H1 \\$2
  246. .    nr H2 \\$3
  247. .    nr H3 \\$4
  248. .    nr H4 \\$5
  249. .    nr H5 \\$6
  250. .\}
  251. .ds SN \\n(H1.
  252. .if \\n(NS-1 .as SN \\n(H2.
  253. .if \\n(NS-2 .as SN \\n(H3.
  254. .if \\n(NS-3 .as SN \\n(H4.
  255. .if \\n(NS-4 .as SN \\n(H5.
  256. \\*(SN
  257. ..
  258. .    \" DS - display with keep (L=left I=indent C=center B=block)
  259. .de DS
  260. .KS
  261. .nf
  262. .\\$1D \\$2 \\$1
  263. .ft 1
  264. .ps \\n(PS
  265. .if \\n(VS>=40 .vs \\n(VSu
  266. .if \\n(VS<=39 .vs \\n(VSp
  267. ..
  268. .de D
  269. .ID \\$1
  270. ..
  271. .    \" ID - indented display with no keep
  272. .de ID
  273. .XD
  274. .if t .in +.5i
  275. .if n .in +8
  276. .if \\n(.$ .if !\\$1I .if !\\$1 \{\
  277. .    in \\n(OIu
  278. .    in +\\$1n
  279. .\}
  280. ..
  281. .    \" LD - left display with no keep
  282. .de LD
  283. .XD
  284. ..
  285. .    \" CD - centered display with no keep
  286. .de CD
  287. .XD
  288. .ce 999
  289. ..
  290. .    \" XD - real display macro
  291. .de XD
  292. .nf
  293. .nr OI \\n(.i
  294. .sp \\n(DDu
  295. .if \\n(TM .ls 1
  296. ..
  297. .    \" DE - end display of any kind
  298. .de DE
  299. .ce 0
  300. .if \\n(BD .DF
  301. .nr BD 0
  302. .in \\n(OIu
  303. .KE
  304. .if \\n(TM .ls 2
  305. .sp \\n(DDu
  306. .fi
  307. ..
  308. .    \" BD - block display: center entire block
  309. .de BD
  310. .XD
  311. .nr BD 1
  312. .nf
  313. .in \\n(OIu
  314. .di DD
  315. ..
  316. .    \" DF - finish block display
  317. .de DF
  318. .di
  319. .if \\n(dl>\\n(BD .nr BD \\n(dl
  320. .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u
  321. .nr EI \\n(.l-\\n(.i
  322. .ta \\n(EIuR
  323. .DD
  324. .in \\n(OIu
  325. ..
  326. .    \" KS - begin regular keep
  327. .de KS
  328. .nr KN \\n(.u
  329. .if !\\n(IK .if !\\n(IF .KQ
  330. .nr IK +1
  331. ..
  332. .    \" KQ - real keep processor
  333. .de KQ
  334. .br
  335. .nr KI \\n(.i
  336. .ev 2
  337. .TA
  338. .br
  339. .in \\n(KIu
  340. .ps \\n(PS
  341. .if \\n(VS>=40 .vs \\n(VSu
  342. .if \\n(VS<=39 .vs \\n(VSp
  343. .ll \\n(LLu
  344. .lt \\n(LTu
  345. .if \\n(NX>1 .ll \\n(CWu
  346. .if \\n(NX>1 .lt \\n(CWu
  347. .di KK
  348. .nr TB 0
  349. ..
  350. .    \" KF - begin floating keep
  351. .de KF
  352. .nr KN \\n(.u
  353. .if !\\n(IK .FQ
  354. .nr IK +1
  355. ..
  356. .    \" FQ - real floating keep processor
  357. .de FQ
  358. .nr KI \\n(.i
  359. .ev 2
  360. .TA
  361. .br
  362. .in \\n(KIu
  363. .ps \\n(PS
  364. .if \\n(VS>=40 .vs \\n(VSu
  365. .if \\n(VS<=39 .vs \\n(VSp
  366. .ll \\n(LLu
  367. .lt \\n(LTu
  368. .if \\n(NX>1 .ll \\n(CWu
  369. .if \\n(NX>1 .lt \\n(CWu
  370. .di KK
  371. .nr TB 1
  372. ..
  373. .    \" KE - end keep
  374. .de KE
  375. .if \\n(IK .if !\\n(IK-1 .if !\\n(IF .RQ
  376. .if \\n(IK .nr IK -1
  377. ..
  378. .    \" RQ - real keep release
  379. .de RQ
  380. .br
  381. .di
  382. .nr NF 0
  383. .if \\n(dn-\\n(.t .nr NF 1
  384. .if \\n(TC .nr NF 1
  385. .if \\n(NF .if !\\n(TB .sp 200
  386. .if !\\n(NF .if \\n(TB .nr TB 0
  387. .nf
  388. .rs
  389. .nr TC 5
  390. .in 0
  391. .ls 1
  392. .if !\\n(TB \{\
  393. .    ev
  394. .    br
  395. .    ev 2
  396. .    KK
  397. .\}
  398. .ls
  399. .ce 0
  400. .if !\\n(TB .rm KK
  401. .if \\n(TB .da KJ
  402. .if \\n(TB \!.KD \\n(dn
  403. .if \\n(TB .KK
  404. .if \\n(TB .di
  405. .nr TC \\n(TB
  406. .if \\n(KN .fi
  407. .in
  408. .ev
  409. ..
  410. .    \" KD - keep redivert
  411. .de KD
  412. .nr KM 0
  413. .if \\n(.zKJ .nr KM 1
  414. .if \\n(KM \!.KD \\$1
  415. .if !\\n(KM .if \\n(.t<\\$1 .di KJ
  416. ..
  417. .    \" EM - end macro (process leftover keep)
  418. .de EM
  419. .br
  420. .if !\\n(TB .if "\*(.T"vp" .wh -1p CM
  421. .if \\n(TB \{\
  422. \&\c
  423. '    bp
  424. .    NP
  425. .    ch CM 160
  426. .\}
  427. ..
  428. .de XK
  429. .nr TD 1
  430. .nf
  431. .ls 1
  432. .in 0
  433. .rn KJ KL
  434. .KL
  435. .rm KL
  436. .if \\n(.zKJ .di
  437. .nr TB 0
  438. .if \\n(.zKJ .nr TB 1
  439. .br
  440. .in
  441. .ls
  442. .fi
  443. .nr TD 0
  444. ..
  445. .    \" NP - new page
  446. .de NP
  447. .if !\\n(LT .nr LT \\n(LLu
  448. .if \\n(FM+\\n(HM>=\\n(.p \{\
  449. .    tm HM + FM longer than page
  450. .    ab
  451. .\}
  452. .if "\*(.T"vp" .CM
  453. .if !\\n(HM .nr HM 1i
  454. .po \\n(POu
  455. .nr PF \\n(.f
  456. .nr PX \\n(.s
  457. .ft 1
  458. .ps \\n(PS
  459. 'sp \\n(HMu/2u
  460. .PT
  461. 'sp |\\n(HMu
  462. .HD    \"undefined
  463. .ps \\n(PX
  464. .ft \\n(PF
  465. .nr XX 0 1
  466. .nr YY 0-\\n(FMu
  467. .ch FO 16i
  468. .ch FX 17i
  469. .ch FO -\\n(FMu
  470. .ch FX \\n(.pu-\\n(FMu
  471. .if \\n(MF .FV
  472. .nr MF 0
  473. .mk
  474. .os
  475. .ev 1
  476. .if !\\n(TD .if \\n(TC<5 .XK
  477. .nr TC 0
  478. .ev
  479. .nr TQ \\n(.i
  480. .nr TK \\n(.u
  481. .if \\n(IT \{\
  482. .    in 0
  483. .    nf
  484. .    TT
  485. .    in \\n(TQu
  486. .    if \\n(TK .fi
  487. .\}
  488. .ns
  489. .mk #T
  490. ..
  491. .    \" PT - page titles
  492. .de PT
  493. .lt \\n(LTu
  494. .pc %
  495. .nr PN \\n%
  496. .nr PT \\n%
  497. .if \\n(P1 .nr PT 2
  498. .if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl \\*(LH\\*(CH\\*(RH
  499. .if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1
  500. .if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2
  501. .lt \\n(.lu
  502. ..
  503. .    \" OH - odd page header
  504. .de OH
  505. .nr OH 1
  506. .if !\\n(.$ .nr OH 0
  507. .ds O1 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  508. ..
  509. .    \" EH - even page header
  510. .de EH
  511. .nr EH 1
  512. .if !\\n(.$ .nr EH 0
  513. .ds E2 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  514. ..
  515. .    \" P1 - PT on 1st page
  516. .de P1
  517. .nr P1 1
  518. ..
  519. .    \" FO - footer
  520. .de FO
  521. .rn FO FZ
  522. .if \\n(IT .nr T. 1
  523. .if \\n(IT .if !\\n(FC .T# 1
  524. .if \\n(IT .br
  525. .nr FC +1
  526. .if \\n(NX<2 .nr WF 0
  527. .nr dn 0
  528. .if \\n(FC<=1 .if \\n(XX .XF
  529. .rn FZ FO
  530. .nr MF 0
  531. .if \\n(dn .nr MF 1
  532. .if !\\n(WF .nr YY 0-\\n(FMu
  533. .if !\\n(WF .ch FO \\n(YYu
  534. .if !\\n(dn .nr WF 0
  535. .if \\n(FC<=1 .if !\\n(XX \{\
  536. .    if \\n(NX>1 .RC
  537. .    if \\n(NX<2 'bp
  538. .\}
  539. .nr FC -1
  540. .if \\n(ML .ne \\n(MLu
  541. ..
  542. .    \" BT - bottom title
  543. .de BT
  544. .nr PF \\n(.f
  545. .nr PX \\n(.s
  546. .ft 1
  547. .ps \\n(PS
  548. .lt \\n(LTu
  549. .po \\n(POu
  550. .if \\n(TM .if \\n(CT \{\
  551. .    tl ''\\n(PN''
  552. .    nr CT 0
  553. .\}
  554. .if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF
  555. .if \\n% .if \\n(OF .if o .tl \\*(O3
  556. .if \\n% .if \\n(EF .if e .tl \\*(E4
  557. .ft \\n(PF
  558. .ps \\n(PX
  559. ..
  560. .    \" OF - odd page footer
  561. .de OF
  562. .nr OF 1
  563. .if !\\n(.$ .nr OF 0
  564. .ds O3 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  565. ..
  566. .    \" EF - even page footer
  567. .de EF
  568. .nr EF 1
  569. .if !\\n(.$ .nr EF 0
  570. .ds E4 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  571. ..
  572. .    \" 2C - double column
  573. .de 2C
  574. .MC
  575. ..
  576. .    \" 1C - single column
  577. .de 1C
  578. .MC \\n(LLu
  579. .hy 14
  580. ..
  581. .    \" MC - multiple columns, arg is col width
  582. .de MC
  583. .nr L1 \\n(LL*7/15
  584. .if \\n(.$ .nr L1 \\$1n
  585. .nr NQ \\n(LL/\\n(L1
  586. .if \\n(NQ<1 .nr NQ 1
  587. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  588. .if !\\n(1T \{\
  589. .    BG
  590. .    if n .sp 4
  591. .    if t .sp 2
  592. .\}
  593. .if !\\n(NX .nr NX 1
  594. .if !\\n(NX=\\n(NQ \{\
  595. .    RT
  596. .    if \\n(NX>1 .bp
  597. .    mk
  598. .    nr NC 1
  599. .    po \\n(POu
  600. .\}
  601. .if \\n(NQ>1 .hy 12
  602. .nr NX \\n(NQ
  603. .nr CW \\n(L1
  604. .ll \\n(CWu
  605. .nr FL \\n(CWu*11u/12u
  606. .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
  607. .nr RO \\n(CW+\\n(GW
  608. .ns
  609. ..
  610. .de RC
  611. .if \\n(NC>=\\n(NX .C2
  612. .if \\n(NC<\\n(NX .C1
  613. .nr NC \\n(ND
  614. ..
  615. .de C1
  616. .rt
  617. .po +\\n(ROu
  618. .nr ND \\n(NC+1
  619. .nr XX 0 1
  620. .if \\n(MF .FV
  621. .ch FX \\n(.pu-\\n(FMu
  622. .ev 1
  623. .if \\n(TB .XK
  624. .nr TC 0
  625. .ev
  626. .nr TQ \\n(.i
  627. .if \\n(IT .in 0
  628. .if \\n(IT .TT
  629. .if \\n(IT .in \\n(TQu
  630. .mk #T
  631. .ns
  632. ..
  633. .de C2
  634. .po \\n(POu
  635. 'bp
  636. .nr ND 1
  637. ..
  638. .    \" RS - right shift
  639. .de RS
  640. .nr IS \\n(IP
  641. .RT
  642. .nr IP \\n(IS
  643. .if \\n(IP .in +\\n(I\\n(IRu
  644. .nr IR +1
  645. .nr I\\n(IR \\n(PIu
  646. .in +\\n(I\\n(IRu
  647. ..
  648. .    \" RE - retreat left
  649. .de RE
  650. .nr IS \\n(IP
  651. .RT
  652. .nr IP \\n(IS
  653. .if \\n(IR .nr IR -1
  654. .if \\n(IP<=0 .in -\\n(I\\n(IRu
  655. ..
  656. .    \" CM - cut mark
  657. .de CM
  658. .po 0
  659. .lt 7.6i
  660. .ft 1
  661. .ps 10
  662. .vs 4p
  663. .tl '--''--'
  664. .po
  665. .vs
  666. .lt
  667. .ps
  668. .ft
  669. ..
  670. .    \" I - italic font
  671. .de I
  672. .nr PQ \\n(.f
  673. .if t .ft 2
  674. .ie \\$1 .if n .ul 999
  675. .el .if n .ul 1
  676. .if t .if !\\$1 \&\\$1\|\f\\n(PQ\\$2
  677. .if n .if \\n(.$=1 \&\\$1
  678. .if n .if \\n(.$>1 \&\\$1\c
  679. .if n .if \\n(.$>1 \&\\$2
  680. ..
  681. .    \" B - bold font
  682. .de B
  683. .nr PQ \\n(.f
  684. .if t .ft 3
  685. .ie \\$1 .if n .ul 999
  686. .el .if n .ul 1
  687. .if t .if !\\$1 \&\\$1\f\\n(PQ\\$2
  688. .if n .if \\n(.$=1 \&\\$1
  689. .if n .if \\n(.$>1 \&\\$1\c
  690. .if n .if \\n(.$>1 \&\\$2
  691. ..
  692. .    \" R - Roman font
  693. .de R
  694. .if n .ul 0
  695. .ft 1
  696. ..
  697. .    \" UL - underline in troff
  698. .de UL
  699. .if t \\$1\l'|0\(ul'\\$2
  700. .if n .I \\$1 \\$2
  701. ..
  702. .    \" SM - smaller
  703. .de SM
  704. .ps -2
  705. ..
  706. .    \" LG - larger
  707. .de LG
  708. .ps +2
  709. ..
  710. .    \" NL - normal
  711. .de NL
  712. .ps \\n(PS
  713. ..
  714. .    \" DA - force date
  715. .de DA
  716. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  717. .ds CF \\*(DY
  718. ..
  719. .    \" ND - no date or new date
  720. .de ND
  721. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  722. .rm CF
  723. ..
  724. .    \" \** - numbered footnote
  725. .ds * \\*([.\\n+*\\*(.]
  726. .    \" FJ - replaces FS after cover
  727. .de FJ
  728. 'ce 0
  729. .di
  730. .ev 1
  731. .ll \\n(FLu
  732. .da FF
  733. .br
  734. .if \\n(IF .tm Nested footnote
  735. .nr IF 1
  736. .if !\\n+(XX-1 .FA
  737. .if !\\n(MF .if !\\n(.$ .if \\n* .FP \\n*
  738. .if !\\n(MF .if \\n(.$ .FP \\$1 no
  739. ..
  740. .    \" FK - replaces FE after cover
  741. .de FK
  742. .br
  743. .in 0
  744. .nr IF 0
  745. .di
  746. .ev
  747. .if !\\n(XX-1 .nr dn +\\n(.v
  748. .nr YY -\\n(dn
  749. .if !\\n(NX .nr WF 1
  750. .if \\n(dl>\\n(CW .nr WF 1
  751. .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
  752. .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) \{\
  753. .    if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
  754. .    if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
  755. .    if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
  756. .\}
  757. ..
  758. .    \" FS - begin footnote on cover
  759. .de FS
  760. .ev 1
  761. .br
  762. .ll \\n(FLu
  763. .da FG
  764. .if !\\n(.$ .if \\n* .FP \\n*
  765. .if \\n(.$ .FP \\$1 no
  766. ..
  767. .    \" FE - end footnote on cover
  768. .de FE
  769. .br
  770. .di
  771. .nr FP \\n(dn
  772. .if !\\n(1T .nr KG 1
  773. .ev
  774. ..
  775. .    \" FA - print line before footnotes
  776. .de FA
  777. .in 0
  778. .if n _________________________
  779. .if t \l'1i'
  780. .br
  781. ..
  782. .    \" FP - footnote paragraph
  783. .de FP
  784. .sp \\n(PDu/2u
  785. .if \\n(FF<2 .ti \\n(FIu
  786. .if \\n(FF=3 \{\
  787. .    in \\n(FIu*2u
  788. .    ta \\n(FIu*2u
  789. .    ti 0
  790. .\}
  791. .if !\\n(FF \{\
  792. .    ie "\\$2"no" \\$1\0\c
  793. .    el \\*([.\\$1\\*(.]\0\c
  794. .\}
  795. .if \\n(FF .if \\n(FF<3 \{\
  796. .    ie "\\$2"no" \\$1\0\c
  797. .    el \\$1.\0\c
  798. .\}
  799. .if \\n(FF=3 \{\
  800. .    ie "\\$2"no" \\$1\t\c
  801. .    el \\$1.\t\c
  802. .\}
  803. ..
  804. .    \" FV - get leftover footnote from previous page
  805. .de FV
  806. .FS
  807. .nf
  808. .ls 1
  809. .FY
  810. .ls
  811. .fi
  812. .FE
  813. ..
  814. .    \" FX - divert leftover footnote for next page
  815. .de FX
  816. .if \\n(XX .di FY
  817. .if \\n(XX .ns
  818. ..
  819. .    \" XF - actually print footnote
  820. .de XF
  821. .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
  822. .ev 1
  823. .nf
  824. .ls 1
  825. .FF
  826. .rm FF
  827. .nr XX 0 1
  828. .br
  829. .ls
  830. .di
  831. .fi
  832. .ev
  833. ..
  834. .de IS  \"    ideal picture
  835. .nr g7 \\n(.u
  836. .ls 1
  837. ..
  838. .de IE
  839. .if \\n(g7 .fi
  840. .ls
  841. ..
  842. .de IF
  843. .if \\n(g7 .fi
  844. .ls
  845. ..
  846. .de PS    \"     start picture (bwk) $1 is height, $2 is width in units
  847. .if t .sp .3
  848. .in (\\n(.lu-\\$2u)/2u
  849. .ne \\$1u
  850. .nr g7 \\n(.u
  851. .ls 1
  852. ..
  853. .de PE
  854. .in
  855. .if \\n(g7 .fi
  856. .if t .sp .6
  857. .ls
  858. ..
  859. .de GS    \"    GRN called with C (default), L or R  (g1=width, g2=height)
  860. .nr g7 (\\n(.lu-\\n(g1u)/2u
  861. .if "\\$1"L" .nr g7 \\n(.iu
  862. .if "\\$1"R" .nr g7 \\n(.lu-\\n(g1u
  863. .in \\n(g7u
  864. .nr g7 \\n(.u
  865. .ls 1
  866. .nf
  867. .ne \\n(g2u
  868. ..
  869. .de GE
  870. .ls
  871. .in
  872. .if \\n(g7 .fi
  873. .if t .sp .6
  874. ..
  875. .de GF
  876. .ls
  877. .in
  878. .if \\n(g7 .fi
  879. ..
  880. .    \" TS - source file for tbl
  881. .de TS
  882. .rn TS @T
  883. .so \*(//s.tbl
  884. .TS \\$1 \\$2
  885. .rm @T
  886. ..
  887. .    \" EQ - source file for eqn
  888. .de EQ
  889. .rn EQ @T
  890. .so \*(//s.eqn
  891. .EQ \\$1 \\$2
  892. .rm @T
  893. ..
  894. .    \" ]- - source file for refer
  895. .de ]-
  896. .rn ]- @T
  897. .so \*(//s.ref
  898. .]-
  899. .rm @T
  900. ..
  901. .    \" LT and HE - source for letter head
  902. .de LT
  903. .rn LT @T
  904. .so \*(//s.hed
  905. .LT
  906. .rm @T
  907. ..
  908. .de HE
  909. .rn HE @T
  910. .so \*(//s.hed
  911. .HE
  912. .rm @T
  913. ..
  914. .    \" [< - for refer -s or -e
  915. .de ]<
  916. .rn ]< @T
  917. .so \*(//s.ref
  918. .]<
  919. .rm @T
  920. ..
  921. .if \n(.V>19 .ds [. \f1[
  922. .if \n(.V>19 .ds .] ]\fP
  923. .if \n(.V<20 .ds [. \f1\s-2\v'-.4m'
  924. .if \n(.V<20 .ds .] \v'.4m'\s+2\fP
  925. .ds <. .
  926. .ds <, ,
  927. .if n .ds Q \&"
  928. .if n .ds U \&"
  929. .if n .ds - \%--
  930. .if t .ds Q ``
  931. .if t .ds U ''
  932. .if t .ds - \(em
  933. .ds ' \h'\w'e'u/5'\z\'\h'-\w'e'u/5'
  934. .ds ` \h'\w'e'u/5'\z\`\h'-\w'e'u/5'
  935. .ds ^ \h'\w'o'u/10'\z^\h'-\w'o'u/10'
  936. .ds , \h'\w'c'u/5'\z,\h'-\w'c'u/5'
  937. .ds : \h'\w'u'u/5'\u\z.\h'\w'u'u*2/5'\z.\d\h'-\w'u'u*3/5'
  938. .ds ~ \h'\w'n'u/10'\z~\h'-\w'n'u/10'
  939. .ds C \h'\w'c'u/5'\v'-.6m'\s-4\zv\s+4\v'.6m'\h'-\w'c'u/5'
  940. .    \" AM - better accent marks
  941. .de AM
  942. .so \*(//s.acc
  943. ..
  944. .    \" TM - thesis mode
  945. .de TM
  946. .so \*(//s.ths
  947. ..
  948. .    \" BX - word in a box
  949. .de BX
  950. .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
  951. .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
  952. ..
  953. .    \" B1 - source file for boxed text
  954. .de B1
  955. .rn B1 @T
  956. .so \*(//s.tbl
  957. .B1 \\$1
  958. .rm @T
  959. ..
  960. .    \" XS - table of contents
  961. .de XS
  962. .rn XS @T
  963. .so \*(//s.toc
  964. .XS \\$1 \\$2
  965. .rm @T
  966. ..
  967. .    \" IX - index words to stderr
  968. .de IX
  969. .tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n(PN
  970. ..
  971. .    \" UX - UNIX macro
  972. .de UX
  973. .ie \\n(UX \s-1UNIX\s0\\$1
  974. .el \{\
  975. \s-1UNIX\s0\\$1\(dg
  976. .FS
  977. \(dg \s-1UNIX\s0 is a trademark of Bell Laboratories.
  978. .FE
  979. .nr UX 1
  980. .\}
  981. ..
  982. .co
  983. .if \n(mo-0 .ds MO January
  984. .if \n(mo-1 .ds MO February
  985. .if \n(mo-2 .ds MO March
  986. .if \n(mo-3 .ds MO April
  987. .if \n(mo-4 .ds MO May
  988. .if \n(mo-5 .ds MO June
  989. .if \n(mo-6 .ds MO July
  990. .if \n(mo-7 .ds MO August
  991. .if \n(mo-8 .ds MO September
  992. .if \n(mo-9 .ds MO October
  993. .if \n(mo-10 .ds MO November
  994. .if \n(mo-11 .ds MO December
  995. .ds DY \*(MO \n(dy, 19\n(yr
  996. .nr * 0 1
  997. .IZ
  998. .em EM
  999. .rm IZ RA //
  1000. .\" psfig macros. An argument will turn off centering.
  1001. .de F+
  1002. .br
  1003. .nr F, \\n(.u
  1004. .nf
  1005. .if \\n(.z .sp -.5
  1006. .if \\n(.$=0 .ce 9999
  1007. ..
  1008. .de F-
  1009. .ce 0
  1010. .if \\n(F, .fi
  1011. .br
  1012. ..
  1013.